﻿#region Header
// Copyright (c) 2015 OPEN TONE, Inc.
// Released under the MIT license
// http://opensource.org/licenses/mit-license.php
#endregion
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;

namespace TestBase.CommonAbstract
{
	/// <summary>
	/// 各テストプロジェクトに共通な子クラス
	/// </summary>
	public class CommonAbstractTestBase
	{
		// TestContextを使用するための変数
		// テストフレームワークがプロパティを自動設定し、それを単体テストで使用できます。
		private TestContext testContextInstance;

		/// <summary>
		/// TestContextプロパティ
		/// </summary>
		public TestContext TestContext
		{
			get
			{
				return testContextInstance;
			}
			set
			{
				testContextInstance = value;
			}
		}

		/// <summary>
		/// TestResourcesディレクトリのフルパス
		/// </summary>
		public String TestResourcesDirectory 
		{
			get
			{
				DirectoryInfo dirInfo = Directory.GetParent(TestContext.TestDir);
				String solutionDirPath = dirInfo.Parent.FullName;
				String value = Path.Combine(solutionDirPath, "TestResources");
				return value;
			}
		}

		/// <summary>
		/// テストリソースの絶対パスを取得します
		/// </summary>
		/// <param name="relativePath">"TestResources"以下の相対パス</param>
		/// <returns>テストリソースの絶対パス</returns>
		public String GetTestResourceAbsolutePath(String relativePath)
		{
			String result = Path.Combine(TestResourcesDirectory, relativePath);
			return result;
		}
	}
}
